package com.ruoyix.ai.domain.bo;

import com.ruoyix.common.core.validate.AddGroup;
import com.ruoyix.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyix.common.core.domain.BaseEntity;

/**
 * AI 聊天会话业务对象 ai_chat_conversation
 *
 * @author ruoyi
 * @date 2024-09-21
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class AiChatConversationBo extends BaseEntity {

    /**
     * 对话编号
     */
    @NotNull(message = "对话编号不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 用户编号
     */
    private Long userId;

    /**
     * 聊天角色
     */
    private Long roleId;

    /**
     * 对话标题
     */
    @NotBlank(message = "对话标题不能为空", groups = { AddGroup.class, EditGroup.class })
    private String title;

    /**
     * 模型编号
     */
    @NotNull(message = "模型编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long modelId;

    /**
     * 模型标识
     */
    @NotBlank(message = "模型标识不能为空", groups = { AddGroup.class, EditGroup.class })
    private String model;

    /**
     * 是否置顶
     */
    private Integer pinned;

    /**
     * 置顶时间
     */
    private Date pinnedTime;

    /**
     * 角色设定
     */
    private String systemMessage;

    /**
     * 温度参数
     */
    private Long temperature;

    /**
     * 单条回复的最大 Token 数量
     */
    private Long maxTokens;

    /**
     * 上下文的最大 Message 数量
     */
    private Long maxContexts;


    /**
     * 是否删除
     */
    private Integer deleted;



}
